Skip to content

ci: pin Integration Test to Temurin 17 - #3780

Merged
Alanxtl merged 1 commit into
apache:developfrom
AsperforMias:ci/pin-integration-jdk17
Oct 27, 2026
Merged

Alanxtl merged 1 commit into
apache:developfrom
AsperforMias:ci/pin-integration-jdk17

Conversation

@AsperforMias

Copy link
Copy Markdown
Contributor

Description

Fixes #3779

The Integration Test job uses ubuntu-latest and does not call actions/setup-java. After the hosted image moved from ubuntu-24.04 (Temurin 17) to ubuntu-26.04 (Temurin 25), that job is cancelled at timeout-minutes: 30. The Java client in java_interop/service_discovery/service throws NoClassDefFoundError: com/alibaba/fastjson/JSONException from Dubbo 3.3.6 JsonUtils.loadExtensions (hasNext() is outside the try) and mvn exec:java does not return.

This pull request adds actions/setup-java@v4 (temurin, 17, cache: maven) to that job only, before ./integrate_test.sh. The step matches dubbo-go-samples CI. cache: maven is safe here because develop contains tools/benchmark/server/dubbo-java/pom.xml, so setup-java has a pom to hash. The Unit Test job is unchanged and still uses Temurin 8 for the ZooKeeper fatjar. No Go source is changed. Release artifacts are unchanged.

Severity: CI blocker for Integration Test on every pull request since the image move. It is not a user-runtime bug and not a release-artifact bug.

Impact:

Root cause and the non-exiting client are written up in #3779. apache/dubbo#15754 fixes JsonUtils on branch 3.3 and is not in the 3.3.6 release. Maven Central org.apache.dubbo:dubbo latest is still 3.3.6, so the samples pom has no fixed version to move to. This repository should pin the JDK the samples were green on.

Why not dubbo-go-samples: that repository's CI already pins Temurin 17. This job never calls setup-java, so it keeps the image JDK. Changing samples would not select the JDK for this job.

This is separate from the Go 1.27 leak. apache/skywalking-eyes/header@main (7f98a36a) sets go-version: "1.27", and in this repository that action is only the Check License Header job. On run 40082838939 that job logs go version go1.27.3, while Integration Test logs Setup go version spec 1.25.0 and go version go1.25.0. The jsonrpc crash under encoding/json v2 is #3777 / #3778. It did not cancel these Integration Test jobs.

Merge order:

  1. Merge this pull request first, so later pull request runs pick up Temurin 17. Re-running fix(jsonrpc): avoid infinite recursion in serverRequest.UnmarshalJSON under encoding/json v2 #3778's existing run 40082838939 will not: a re-run keeps that run's workflow file, which has no setup-java. fix(jsonrpc): avoid infinite recursion in serverRequest.UnmarshalJSON under encoding/json v2 #3778 needs a new run after this change is on develop (update the branch). Its Integration Test failure is this JDK 25 cancel. That job's Go is 1.25.0, and its Unit Test job already succeeded.
  2. Then merge fix(jsonrpc): avoid infinite recursion in serverRequest.UnmarshalJSON under encoding/json v2 #3778, which fixes [Bug]: jsonrpc server crashes while decoding a request under Go 1.27 encoding/json v2 #3777 for Go 1.27 callers.
  3. samples, independently: merge ci: run the license-header check before setting up Go dubbo-go-samples#1156 first (Build And Integration passed on https://github.com/apache/dubbo-go-samples/actions/runs/40082624365). Then update test(observability): add reproducible signal captures dubbo-go-samples#1155. Run https://github.com/apache/dubbo-go-samples/actions/runs/40075757874 prints go1.25.0 at "Check tool versions", go1.27.3 inside "Check license header", and then the jsonrpc server refuses connections. samples CI already has Temurin 17, so that failure is the Go 1.27 leak, not JDK 25.

make fmt, make test, and a new Go test are not run. The diff is this workflow file only. The check that this pin works is the Integration Test job on this pull request.

Checklist

  • I confirm the target branch is develop
  • I have run make fmt to format my code
  • I have run make test to run local tests
  • I have added tests that prove my fix is effective or that my feature works

ubuntu-latest images now ship JDK 25. Dubbo 3.3.6 JsonUtils throws
NoClassDefFoundError for com.alibaba.fastjson.JSONException on that
JDK, and the samples Java client then stays up until the 30 minute
job timeout. Pin Temurin 17 before the integration script, matching
dubbo-go-samples CI.

Fixes: apache#3779
Signed-off-by: AsperforMias <asperformias000@outlook.com>
@sonarqubecloud

Copy link
Copy Markdown

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.65%. Comparing base (60d1c2a) to head (bb76820).
⚠️ Report is 993 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff              @@
##           develop    #3780       +/-   ##
============================================
+ Coverage    46.76%   57.65%   +10.88%     
============================================
  Files          295      487      +192     
  Lines        17172    40010    +22838     
============================================
+ Hits          8031    23067    +15036     
- Misses        8287    15165     +6878     
- Partials       854     1778      +924     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Alanxtl Alanxtl linked an issue Oct 27, 2026 that may be closed by this pull request
@Alanxtl Alanxtl added ☢️ Bug 3.3.3 version 3.3.3 labels Oct 27, 2026

@Alanxtl Alanxtl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Alanxtl
Alanxtl merged commit fdd2e57 into apache:develop Oct 27, 2026
8 checks passed
AlexStocks pushed a commit that referenced this pull request Nov 8, 2026
ubuntu-latest images now ship JDK 25. Dubbo 3.3.6 JsonUtils throws
NoClassDefFoundError for com.alibaba.fastjson.JSONException on that
JDK, and the samples Java client then stays up until the 30 minute
job timeout. Pin Temurin 17 before the integration script, matching
dubbo-go-samples CI.

Fixes: #3779

Signed-off-by: AsperforMias <asperformias000@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.3.3 version 3.3.3 ☢️ Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Integration Test is cancelled on the JDK 25 runner image

3 participants